import React, { useEffect } from "react";

export default (): JSX.Element => {
  const computed = () => {
    // 实现一个方法，用于比较两个版本号 compareVersion(version1, version2)
    // - 如果 version1 > version2，返回 1
    // - 如果 version1 < version2，返回 -1
    // - version1 == version2，返回 0

    // 合法的版本号规则:
    // - `x.y.z`，x y z 均为大于等于 0 的整数
    // - 至少有 x 位

    // 输入：compareVersion('1', '1.0.1')
    // 输出：-1
    function compareVersion(version1: string, version2: string) {
      let res = -1;
      let arr1 = version1.split(".").map((item) => +item);
      let arr2 = version2.split(".").map((item) => +item);
      if (version1 === version2) {
        return 1;
      }

      for (let i = 0; i < Math.max(arr1.length, arr2.length); i++) {
        if (arr1[i] > arr2[i]) {
          res = 1;
          break;
        }
      }
      return res;
    }
    console.log(
      compareVersion("1.2", "1.1.1"),
      compareVersion("1.2", "1.11.1")
    );
  };
  // ---------前置知识（空间复杂度，时间复杂度）---------
  // ---------数据结构---------
  const computed1 = () => {
    // 栈 特点：后进先出(push,pop)
    let stack = []
    stack.push(1)
    stack.push(2)
    let item1 = stack.pop()
    let item2 = stack.pop()
    console.log(item1, item2)
    // 算法题（括号是否有效闭合，函数调用栈）
  }

  const computed2 = () => {
    // 对列 特点：先进先出(unshift,shift)

  }

  const computed3 = () => {

  }

  const computed4 = () => {

  }

  const computed5 = () => {

  }

  const computed6 = () => {

  }

  const computed7 = () => {

  }

  const computed8 = () => {

  }

  const computed9 = () => {

  }
  // ---------算法设计思路---------
  const computed10 = () => {

  }

  const computed11 = () => {

  }

  const computed12 = () => {

  }
  
  const computed13 = () => {

  }

  useEffect(() => {
    // computed();
    computed1() //栈
    computed2() //对列
    computed3() //链表
    computed4() //集合
    computed5() //字典
    computed6() //树
    computed7() //图
    computed8() //堆
    computed9() //进阶算法搜索排序
    // ---------算法设计思路---------
    computed10() // 分而治之
    computed11() // 动态规划
    computed12() // 贪心算法
    computed13() // 回溯算法
  }, []);
  return <div>computed</div>;
};
